package com.linzm.leetcode.primary.exercises1_20230114;

import java.util.Arrays;
import java.util.TreeSet;

/**
 * @Author zimingl
 * @Date 2023/1/15 0:50
 * @Description: 跳水板
 */
public class Demo8 {
    /**
     * 输入：
     * shorter = 1
     * longer = 2
     * k = 3
     * 输出： [3,4,5,6]
     * 解释：
     * 可以使用 3 次 shorter，得到结果 3；使用 2 次 shorter 和 1 次 longer，得到结果 4 。以此类推，得到最终结果。
     */
    public static void main(String[] args) {
        int shorter = 1, longer = 2, k = 3;
        Demo8 demo8 = new Demo8();
        int[] divingBoards = demo8.divingBoard(shorter, longer, k);
        String[] strings = Arrays.stream(divingBoards).mapToObj(String::valueOf).toArray(String[]::new);
        System.out.println(String.join(" ", strings));
    }

    private int[] divingBoard(int shorter, int longer, int k) {
        if (k == 0) {
            return new int[0];
        }
        TreeSet<Integer> set = new TreeSet<>();
        int len;
        for (int i = 0; i <= k; i++) {
            len = i * shorter + (k - i) * longer;
            set.add(len);
        }
        return set.stream().mapToInt(x -> x).toArray();
    }
}
